package com.ruoyi.platform.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 活动关联对象 activity_relations
 * 
 * @author ruoyi
 * @date 2025-10-21
 */
public class ActivityRelations extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 关联ID */
    @Excel(name = "关联ID")
    private String relationId;

    /** 活动ID */
    @Excel(name = "活动ID")
    private String activityId;

    /** 商家ID */
    @Excel(name = "商家ID")
    private String merchantId;

    /** 商品ID */
    @Excel(name = "商品ID")
    private String productId;

    /** 套餐ID */
    @Excel(name = "套餐ID")
    private String comboId;

    /** 商品/套餐原价 */
    @Excel(name = "商品/套餐原价")
    private BigDecimal originalPrice;

    /** 折扣类型 */
    @Excel(name = "折扣类型")
    private Long discountType;

    /** 折扣值 */
    @Excel(name = "折扣值")
    private BigDecimal discountValue;

    /** 满减金额 */
    @Excel(name = "满减金额")
    private BigDecimal discountExtra;

    /** 活动价 */
    @Excel(name = "活动价")
    private BigDecimal activityPrice;

    /** 限购数量 */
    @Excel(name = "限购数量")
    private String maxPurchase;

    /** 活动库存限制 */
    @Excel(name = "活动库存限制")
    private String stockLimit;

    /** 已使用活动库存 */
    @Excel(name = "已使用活动库存")
    private String stockUsed;

    /** 是否主打商品 */
    @Excel(name = "是否主打商品")
    private Long isMainProduct;

    /** 排序 */
    @Excel(name = "排序")
    private String sortOrder;

    /** 商品活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商品活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 商品活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商品活动结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 是否免配送费 */
    @Excel(name = "是否免配送费")
    private Long isFreeDelivery;

    /** 配送费 */
    @Excel(name = "配送费")
    private BigDecimal deliveryFee;

    /** 商品起送价 */
    @Excel(name = "商品起送价")
    private BigDecimal minOrderAmount;

    /** 商品包装费 */
    @Excel(name = "商品包装费")
    private BigDecimal packagingFee;

    /** 状态 */
    @Excel(name = "状态")
    private Long status;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deletedAt;

    public void setRelationId(String relationId) 
    {
        this.relationId = relationId;
    }

    public String getRelationId() 
    {
        return relationId;
    }

    public void setActivityId(String activityId) 
    {
        this.activityId = activityId;
    }

    public String getActivityId() 
    {
        return activityId;
    }

    public void setMerchantId(String merchantId) 
    {
        this.merchantId = merchantId;
    }

    public String getMerchantId() 
    {
        return merchantId;
    }

    public void setProductId(String productId) 
    {
        this.productId = productId;
    }

    public String getProductId() 
    {
        return productId;
    }

    public void setComboId(String comboId) 
    {
        this.comboId = comboId;
    }

    public String getComboId() 
    {
        return comboId;
    }

    public void setOriginalPrice(BigDecimal originalPrice) 
    {
        this.originalPrice = originalPrice;
    }

    public BigDecimal getOriginalPrice() 
    {
        return originalPrice;
    }

    public void setDiscountType(Long discountType) 
    {
        this.discountType = discountType;
    }

    public Long getDiscountType() 
    {
        return discountType;
    }

    public void setDiscountValue(BigDecimal discountValue) 
    {
        this.discountValue = discountValue;
    }

    public BigDecimal getDiscountValue() 
    {
        return discountValue;
    }

    public void setDiscountExtra(BigDecimal discountExtra) 
    {
        this.discountExtra = discountExtra;
    }

    public BigDecimal getDiscountExtra() 
    {
        return discountExtra;
    }

    public void setActivityPrice(BigDecimal activityPrice) 
    {
        this.activityPrice = activityPrice;
    }

    public BigDecimal getActivityPrice() 
    {
        return activityPrice;
    }

    public void setMaxPurchase(String maxPurchase) 
    {
        this.maxPurchase = maxPurchase;
    }

    public String getMaxPurchase() 
    {
        return maxPurchase;
    }

    public void setStockLimit(String stockLimit) 
    {
        this.stockLimit = stockLimit;
    }

    public String getStockLimit() 
    {
        return stockLimit;
    }

    public void setStockUsed(String stockUsed) 
    {
        this.stockUsed = stockUsed;
    }

    public String getStockUsed() 
    {
        return stockUsed;
    }

    public void setIsMainProduct(Long isMainProduct) 
    {
        this.isMainProduct = isMainProduct;
    }

    public Long getIsMainProduct() 
    {
        return isMainProduct;
    }

    public void setSortOrder(String sortOrder) 
    {
        this.sortOrder = sortOrder;
    }

    public String getSortOrder() 
    {
        return sortOrder;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setIsFreeDelivery(Long isFreeDelivery) 
    {
        this.isFreeDelivery = isFreeDelivery;
    }

    public Long getIsFreeDelivery() 
    {
        return isFreeDelivery;
    }

    public void setDeliveryFee(BigDecimal deliveryFee) 
    {
        this.deliveryFee = deliveryFee;
    }

    public BigDecimal getDeliveryFee() 
    {
        return deliveryFee;
    }

    public void setMinOrderAmount(BigDecimal minOrderAmount) 
    {
        this.minOrderAmount = minOrderAmount;
    }

    public BigDecimal getMinOrderAmount() 
    {
        return minOrderAmount;
    }

    public void setPackagingFee(BigDecimal packagingFee) 
    {
        this.packagingFee = packagingFee;
    }

    public BigDecimal getPackagingFee() 
    {
        return packagingFee;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setDeletedAt(Date deletedAt) 
    {
        this.deletedAt = deletedAt;
    }

    public Date getDeletedAt() 
    {
        return deletedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("relationId", getRelationId())
            .append("activityId", getActivityId())
            .append("merchantId", getMerchantId())
            .append("productId", getProductId())
            .append("comboId", getComboId())
            .append("originalPrice", getOriginalPrice())
            .append("discountType", getDiscountType())
            .append("discountValue", getDiscountValue())
            .append("discountExtra", getDiscountExtra())
            .append("activityPrice", getActivityPrice())
            .append("maxPurchase", getMaxPurchase())
            .append("stockLimit", getStockLimit())
            .append("stockUsed", getStockUsed())
            .append("isMainProduct", getIsMainProduct())
            .append("sortOrder", getSortOrder())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("isFreeDelivery", getIsFreeDelivery())
            .append("deliveryFee", getDeliveryFee())
            .append("minOrderAmount", getMinOrderAmount())
            .append("packagingFee", getPackagingFee())
            .append("status", getStatus())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("deletedAt", getDeletedAt())
            .toString();
    }
}
